package controllers;

import gsons.FieldJsonSerializer;

import java.util.List;

import javax.print.attribute.standard.Fidelity;

import models.Database;
import models.Field;
import models.FieldDict;
import models.Table;
import play.mvc.Controller;

/**
 * 数据库控制器
 * 
 * @author ultrafrog
 * @version 1.0, 2015-04-04
 * @since 1.0
 */
public class Databases extends Controller {

	/** 数据库表页面 */
	public static void table() {
		render();
	}

	/**
	 * 数据库列表
	 */
	public static void databases() {
		renderJSON(Database.findAll());
	}
	
	/**
	 * 数据库表列表
	 * 
	 * @param id
	 */
	public static void tables(String id) {
		renderJSON(Table.find("byDatabaseId", id).fetch());
	}
	
	/**
	 * 数据字段列表
	 * 
	 * @param id
	 */
	public static void fields(String id) {
		List<Field> lField = Field.find("tableId = ?1 order by order asc", id).fetch();
		for (Field field: lField) {
			List<FieldDict> lFieldDict = FieldDict.find("fieldId = ?1 order by value asc", field.id).fetch();
			field.dicts.addAll(lFieldDict);
		}
		renderJSON(lField, new FieldJsonSerializer());
	}
}
